home *** CD-ROM | disk | FTP | other *** search
- #! /bin/sh
- #
- # Zoo file system
- #
- # Copyright ? U. N. Known
- #
- # This filesystem is _dangerous_. It used to create symlinks in filesystem
- # with zoo file, it used to happily delete file from your filesystem.
- # Now it is 'only' very ugly (it creates temporary files in ~/.mc/
- #
-
- ZOO=zoo
-
- mczoofs_list ()
- {
- $ZOO l $1 | nawk -v uid=${UID-0} '
- BEGIN { hyphens=0 }
- /^---/ { if (hyphens > 0) exit 0; hyphens=1; next }
- /^[^\ ]/ { next }
- {
- if (NF < 8)
- next
- if ($8 ~ /^\^/)
- $8=substr($8, 2)
- if ($6 > 50)
- $6=$6 + 1900
- else
- $6=$6 + 2000
- split($7, a, ":")
- if ($8 ~ /\/$/)
- printf "drwxr-xr-x 1 %-8d %-8d %8d %s %2d %4d %02d:%02d %s\n", uid, 0, $1, $5, $4, $6, a[1], a[2], $8
- else
- printf "-rw-r--r-- 1 %-8d %-8d %8d %s %2d %4d %02d:%02d %s\n", uid, 0, $1, $5, $4, $6, a[1], a[2], $8
- }' 2>/dev/null
- exit 0
- }
-
- mczoofs_copyout ()
- {
- $ZOO xp $1 $2 | tail +6l > $3 2>/dev/null
- exit 0
- }
-
- # zoo is stupid and won't be happy when the name has no extension.
- # We have to do a small trick :) [pretty dirty, broken hack -- pavel]
- if echo $2 | grep '\.zoo$'; then
- :
- else
- SYMLINK=~/.mc/temporary.$2.zoo
- if test -f $SYMLINK; then
- SYMLINK=~/.mc/temporary.$2.
- fi
- if test -f $SYMLINK; then
- echo "Ugh. I did not expect this to happen. Cleanup your ~/.mc."
- sleep 5
- exit 1
- fi
- ln -s $2 $SYMLINK
- trap 'rm -f $SYMLINK' 0 1 2 3 5 13 15
- $2=$SYMLINK
- fi
- case "$1" in
- list) mczoofs_list $2; exit $?;;
- copyout) mczoofs_copyout $2 $3 $4; exit $?;;
- esac
- exit 1
-